<?php
  class CONEXAO
  {
/*A seguir se encontram os paramatros que s�o usados para fazer a conex�o com o Postgre*/
          private $user = "root";
          private $password = "";
          private $host = "localhost";
          private $database = "db_sis_agendamento_aula";
		  
/*Essa variavel guardar� as consultas que ser�o feitas no banco*/
          private $query = "";
/*Essa variavel guardar� uma variavel de conex�o*/
  	    private $link = "";  	
public function __construct() 
  	{
/*Ao chamar o contrutor a conex�o j� � estabelecida*/
  		
  	}
/*Esse m�todo � o responsavel por fazer a conex�o*/
  	public function Conecta()
  	{
/*O atributo link quarda a conex�o estabelecida*/
  		$this->link = mysql_connect($this->host,$this->user,$this->password);
  		if (!$this->link)
  		{
  			die("Problema na Conex�o com o Banco de Dados");
  		}
  		elseif (!mysql_select_db($this->database,$this->link))
  		{
  			die("Problema na Conex�o com o Banco de Dados");
  		}
  		
  	}
/*Esse m�todo encerra a conex�o*/
public function Desconecta()
  	{
  		return mysql_close($this->link);
  	}
/*Esse m�todo Executa comando sem retorno de dados(insert,delete ou update)*/
public function Executa($comando)
{
$this->query = $comando;
$sql = mysql_query($this->query,$this->link)
or die(mysql_error($this->link));
}
/*Esse m�todo � o responsavel por retornar dados para a aplica��o*/
public function Consulta($consulta)
  	{
        $this->query = $consulta;
  		if ($resultado = mysql_query($this->query,$this->link))
  		{
  			return $resultado;
		} else {
  			return 0;
  		}
  	}

public function contaRegistros($tabela){
	$valor = $this->Consulta("select count(*) from $tabela");
	if($valor != 0){
	$result = mysql_fetch_assoc($valor);

	return $result['count(*)'];
	}
	else{
	return 0;
	}
}

public function maxId($tabela){
	$valor = $this->Consulta("select max(id) max from $tabela");
	if($valor != 0){
	$result = mysql_fetch_assoc($valor);
	
	if($result['max']!=null){
	return $result['max'];
	}
	else{
	return 0;
	}
	}
	else{
	return null;
	}
}

public function grav($consulta){
return $this->getResultAsVector($consulta);
}

public function getResultAsVector($consulta){
	
	$arrayRetorno = array();

	$busca = $this->Consulta($consulta);

		if($busca != 0){

			while($result = mysql_fetch_assoc($busca)){
		
			$arrayRetorno[] = $result;
			
			}

		return $arrayRetorno;

		}

		else{

		return null;

		}
		}
		
		//Fun��o respons�vel por criar select html vindos do banco de dados
public function showSelectHtmlDB($tabela,$campoUnico,$campo,$selecionado="",$nome="",$restricaoSQL="",$atributos=""){
		//caso n�o seja informado o nome o select ter� o nome da tabela
		if($nome==""){
		$nome=$tabela;
		}
		
		//Busca
		$select = "select $campoUnico,$campo from $tabela $restricaoSQL";
		//Pega resultado
		$busca = $this->getResultAsVector($select);
		//Inicia cria��o do conteudo
		$selectHTML ="";
		$selectHTML .= "\n<select $atributos name='$nome' id='$nome'>\n";
		$selectHTML .= "<option value=''>Selecione...</option>\n";
		
		//Percorre todos os resultador
		foreach($busca as $value){
			//caso se queira preselecionar uma op��o
			
			if($value[$campoUnico]==$selecionado){
			$selectHTML .= "<option selected='selected' value='".$value[$campoUnico]."'>".$value[$campo]."</option>\n";
			}
			else{
			$selectHTML .= "<option value='".$value[$campoUnico]."'>".$value[$campo]."</option>\n";
			}
		}
		$selectHTML .= "</select>\n";
		
		return $selectHTML;
		}
		
		public function funcaoTrans($idElemento,$tabela,$campo){
		if($idElemento!=0 && $idElemento!="" && $idElemento!=null){
		$this->Conecta();
		$valor = $this->getResultAsVector("select $campo from $tabela where id = $idElemento");
		$this->Desconecta();
		if($valor[0][$campo]!='')
		return $valor[0][$campo];
		else
		return 'valor n�o encontrado';
		}
		else{
		return "n�o existe";
		}
}

public function showCheckBoxGroupHtmlDB($tabelaRelacao,$tabelaAlvo,$campoUnico,$campoMostrado,$nome="",$restricaoSQL="",$atributos=""){
		//caso n�o seja informado o nome o select ter� o nome da tabela
		if($nome==""){
		$nome=$tabelaAlvo;
		}
		
		
		//Busca
		$select = "select $campoUnico,$campoMostrado from $tabelaAlvo $restricaoSQL";
		
		//pega itens da tabela alvo
		$this->Conecta();
		$busca = $this->getResultAsVector($select);
		$this->Desconecta();
		$HTML ="";
		foreach($busca as $value){
		$HTML .="<input type='checkbox' id='".$nome.$value[$campoUnico]."' name='".$nome."[".$value[$campoUnico]."]'> ".$value[$campoMostrado]." <br/>\n";
		}
		
		
		

		return $HTML;
		}
		
public function pegaAttrRelacaoNN($tbOrigem,$tbRel,$idOrigem,$campoOrigem,$idBuscado,$campoBusca,$camposMostrados){

	$busca = $this->pegaArrayRelacaoNN($tbOrigem,$tbRel,$idOrigem,$campoOrigem,$idBuscado,$campoBusca,$camposMostrados);
	
		$HTML ="";
		if(count($busca)){
		foreach($busca as $value){
		
		$HTML .=$value[$camposMostrados]."<br/>\n";
		
		}
		}
		else{
		$HTML = "Nenhum resultado encontrado";
		}
		

		return $HTML;
}
public function pegaArrayRelacaoNN($tbOrigem,$tbRel,$idOrigem,$campoOrigem,$idBuscado,$campoBusca,$camposMostrados){

if(is_array($camposMostrados)){
	$campos = "";
	foreach($camposMostrados as $valor){
	$campos .= "t1.".$camposMostrados.",";
	}
	$ordem = "t1.".$camposMostrados[0];
	$campos = substr($campos, 0, -1);

}
else{
$ordem = "t1.".$camposMostrados;
$campos = "t1.".$camposMostrados;
}
				
		//Busca
		$select = "select $campos from 
		$tbOrigem t1,
		$tbRel t2 
		where t1.$idOrigem = t2.$campoOrigem 
		and t2.$campoBusca = $idBuscado
		order by $ordem
		;";
		//echo $select;
		//pega itens da tabela alvo
		$this->Conecta();
		$busca = $this->getResultAsVector($select);
		$this->Desconecta();

		return $busca;
		
}	


}
  ?>
